﻿using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Lotus.Domain.Input
{
    /// <summary>
    /// 标准任务完成状态同步输入对象
    /// </summary>
    public class SyncLSRPTaskStatusInput
    {
        /// <summary>
        /// 任务编号
        /// </summary>
        [JsonProperty("taskId")]
        public string? TaskId { get; set; }

        /// <summary>
        /// 状态 0进行中1已完成
        /// </summary>
        [JsonProperty("status")]
        public string? Status { get; set; }

        /// <summary>
        /// 发布时间
        /// </summary>
        [JsonProperty("publishTime")]
        public long? PublishTime { get; set; }

        /// <summary>
        /// 实施时间
        /// </summary>
        [JsonProperty("effectTime")]
        public long? EffectTime { get; set; }

        /// <summary>
        /// 标准编号
        /// </summary>
        [JsonProperty("standardNo")]
        public string? StandardNo { get; set; }

        /// <summary>
        /// 标准名称
        /// </summary>
        [JsonProperty("standardName")]
        public string? StandardName { get; set; }

        /// <summary>
        /// 标准英文名称
        /// </summary>
        [JsonProperty("standardNameEn")]
        public string? StandardNameEn { get; set; }

        /// <summary>
        /// 标准新编号
        /// </summary>
        [JsonProperty("newStandardNo")]
        public string? NewStandardNo { get; set; }

        /// <summary>
        /// 标准新名称
        /// </summary>
        [JsonProperty("newStandardName")]
        public string? NewStandardName { get; set; }

        /// <summary>
        /// 新英文名称
        /// </summary>
        [JsonProperty("newStandardNameEn")]
        public string? NewStandardNameEn { get; set; }

        /// <summary>
        /// 会签人员
        /// </summary>
        [JsonProperty("countersignedPerson")]
        public List<LSRPCountersignedPerson>? CountersignedPerson { get; set; }

        /// <summary>
        /// 执行工程师工号
        /// </summary>
        [JsonProperty("employeeNo")]
        public string? EmployeeNo { get; set; }

        /// <summary>
        /// 标准文件预览地址
        /// </summary>
        [JsonProperty("standardUrl")]
        public string? StandardUrl { get; set; }

        /// <summary>
        /// 标准文件下载地址
        /// </summary>
        [JsonProperty("standardDownloadUrl")]
        public string? StandardDownloadUrl { get; set; }

        /// <summary>
        /// 标准文件名称
        /// </summary>
        [JsonProperty("standardFileName")]
        public string? StandardFileName { get; set; }

        /// <summary>
        /// 附件信息
        /// </summary>
        [JsonProperty("fileList")]
        public List<LSRPFileInput>? FileList { get; set; }
    }

    /// <summary>
    /// 标准任务附件输入对象
    /// </summary>
    public class LSRPFileInput
    {
        /// <summary>
        /// 附件信息预览地址
        /// </summary>
        [JsonProperty("fileUrl")]
        public string? FileUrl { get; set; }

        /// <summary>
        /// 附件信息下载地址
        /// </summary>
        [JsonProperty("fileDownloadUrl")]
        public string? FileDownloadUrl { get; set; }

        /// <summary>
        /// 附件信息名称
        /// </summary>
        [JsonProperty("fileName")]
        public string? FileName { get; set; }

        /// <summary>
        /// 附件信息分类
        /// </summary>
        [JsonProperty("fileType")]
        public string? FileType { get; set; }
    }

    /// <summary>
    /// 标准任务会签人员对象
    /// </summary>
    public class LSRPCountersignedPerson
    {
        /// <summary>
        /// 会签部门
        /// </summary>
        [JsonProperty("department")]
        public string? Department { get; set; }

        /// <summary>
        /// 会签结果
        /// </summary>
        [JsonProperty("reviewResults")]
        public string? ReviewResults { get; set; }

        /// <summary>
        /// 会签人名
        /// </summary>
        [JsonProperty("reviewers")]
        public string? Reviewers { get; set; }

        /// <summary>
        /// 会签时间
        /// </summary>
        [JsonProperty("reviewTime")]
        public string? ReviewTime { get; set; }
    }
}
